.TH std::sqrt(std::complex) 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::sqrt(std::complex) \- std::sqrt(std::complex)

.SH Synopsis
   Defined in header <complex>
   template< class T >
   std::complex<T> sqrt( const std::complex<T>& z );

   Computes the square root of the complex number z with a branch cut along the
   negative real axis.

.SH Parameters

   z - complex number to take the square root of

.SH Return value

   If no errors occur, returns the square root of z, in the range of the right
   half-plane, including the imaginary axis ([0; +∞) along the real axis and (−∞; +∞)
   along the imaginary axis).

   Error handling and special values

   Errors are reported consistent with math_errhandling.

   If the implementation supports IEEE floating-point arithmetic,

     * The function is continuous onto the branch cut taking into account the sign of
       imaginary part
     * std::sqrt(std::conj(z)) == std::conj(std::sqrt(z))
     * If z is (±0,+0), the result is (+0,+0)
     * If z is (x,+∞), the result is (+∞,+∞) even if x is NaN
     * If z is (x,NaN), the result is (NaN,NaN) (unless x is ±∞) and FE_INVALID may be
       raised
     * If z is (-∞,y), the result is (+0,+∞) for finite positive y
     * If z is (+∞,y), the result is (+∞,+0) for finite positive y
     * If z is (-∞,NaN), the result is (NaN,∞) (sign of imaginary part unspecified)
     * If z is (+∞,NaN), the result is (+∞,NaN)
     * If z is (NaN,y), the result is (NaN,NaN) and FE_INVALID may be raised
     * If z is (NaN,NaN), the result is (NaN,NaN)

.SH Notes

   The semantics of this function are intended to be consistent with the C function
   csqrt.

.SH Example


// Run this code

 #include <complex>
 #include <iostream>

 int main()
 {
     std::cout << "Square root of -4 is "
               << std::sqrt(std::complex<double>(-4.0, 0.0)) << '\\n'
               << "Square root of (-4,-0) is "
               << std::sqrt(std::complex<double>(-4.0, -0.0))
               << " (the other side of the cut)\\n";
 }

.SH Output:

 Square root of -4 is (0,2)
 Square root of (-4,-0) is (0,-2) (the other side of the cut)

   Defect reports

   The following behavior-changing defect reports were applied retroactively to
   previously published C++ standards.

      DR    Applied to           Behavior as published              Correct behavior
   LWG 2597 C++98      specification mishandles signed zero       erroneous requirement
                       imaginary parts                            removed

.SH See also

   pow(std::complex)   complex power, one or both arguments may be a complex number
                       \fI(function template)\fP
   sqrt                computes square root (\\(\\small{\\sqrt{x}}\\)
   sqrtf               √
   sqrtl               x)
   \fI(C++11)\fP             \fI(function)\fP
   \fI(C++11)\fP
   sqrt(std::valarray) applies the function std::sqrt to each element of valarray
                       \fI(function template)\fP
   C documentation for
   csqrt
